When a trajectory of an effector such as a robot is controlled, a target state needs to be defined. The target state is, for example, defined by an object handled by a manipulating arm of a robot. In general, the position of the object can be described by three parameters. In addition to the object position, it is often necessary to describe a spatial orientation by Kardan-angles or Euler-angles.
To carry out the movement of an effector of a robot, the trajectory is usually generated by mapping increments from a control parameter space on a configuration space.
The control parameter space or task space is the space of the command elements. The control parameter space is composed of the command elements. The command (also “target” or “task”) elements are the elements of a respective command vector. These elements define a useful description about what should be controlled, for example, the position of a hand or the tilting of a head. The configuration space is the space of controllable degrees of freedom. The configuration space can be composed of individual joints of a robot and/or more complex kinematics mechanisms having controllable degrees of freedom.
“Null space” represents the dimensional difference between the joint space and the task space. The null space contains redundant degrees of freedom that allow movements to be performed without affecting task space motion. The null space is defined as a set of arguments of a linear operator such that the corresponding function value is zero. Redundant systems have a (local) null space that can be used to address a secondary objective, such as kinematic conditioning, without disturbing a primary task.
Conventionally, targets of robots were provided by operators and the robots merely tracked planned trajectories. The safety mechanism in conventional robots is an emergency stop mechanism that simply freezes motions, if any motions were being performed. Modern robots, in particular humanoid robots, are expected to work outside the typical environment such as factories. The modern robots need to interact with dynamic environment that is less predictable. Thus, there is a need for a more advanced safety mechanism, hereinafter referred to as a collision avoidance mechanism instead of the emergency stop mechanism. The advantage of using the collision avoidance is not only safety. The collision avoidance does not necessarily stop the robot's target reaching motions and may expand the robot's working range.
The known collision avoidance mechanism may be divided into two categories. One category of collision avoidance mechanism is a planning (non real-time) method which generates trajectories taking obstacles into account.
James Kuffner et al., “Self-collision detection and prevention for humanoid robots,” In proceedings of the IEEE International Conference on Robotics and Automation, 2002, which is incorporated by reference herein in its entirety, proposes a collision avoidance on a humanoid robot. This document proposes a fast collision detection method and a real-time planning for gait generations taking leg interference into account.
James Kuffner et al., “Dynamically-stable motion planning for humanoid robots,” Autonomous Robots, volume 12, pages 105-118, 2002, which is incorporated by reference herein its entirety, proposes a dynamics based collision free planning method using Rapidly exploring Random Trees (RRTs). However, these methods are difficult to apply to interactive motions because the computation time becomes longer as the degrees of freedom of robots (e.g., humanoid robots) increase.
Another category of the collision avoidance is reactive (real-time) collision avoidance. The reactive collision avoidance modifies trajectories that are quite simple such as line segments connecting current positions and target positions.
In order to use this method, the direction of avoidance and how to switch the priority between target reaching motions and collision avoidance motions must be decided depending on the magnitude of danger of collisions in real-time. For instance, if the distance between segments is large enough, target reaching motions should have higher priority than collision avoidance motions.
Null space optimization criteria may be used for collision avoidance (see, for example, Michael Gienger, Herbert Janssen, and Christian Goerick, “Task-oriented whole body motion for humanoid robots,” In proceedings of the IEEERAS International Conference on Humanoid Robots, 2005; and Michael Gienger, Herbert Janssen, and Christian Goerick, “Exploiting task intervals for whole body robot control,” In proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006, which are incorporated by reference herein in their entirety).